#ifndef INTERSECTION_H
#define INTERSECTION_H


#include "pbrt.h"
#include "geometry.h"
#include "diffgeom.h"
#include "transform.h"

// Intersection Declarations
struct Intersection {
    // Intersection Public Methods
    Intersection() {
        primitive = NULL;
        shapeId = primitiveId = 0;
        rayEpsilon = 0.f;
    }

    // Intersection Public Data
    DifferentialGeometry dg;
    const Primitive *primitive;
    Transform WorldToObject, ObjectToWorld;
    uint32_t shapeId, primitiveId;
    float rayEpsilon;
};


#endif // INTERSECTION_H
